The present invention relates to network communications and more particularly, to storing frame information in a network switch prior to processing by a decision making engine.
In computer networks, a plurality of network stations are interconnected via a communications medium. For example, Ethernet is a commonly used local area network scheme in which multiple stations are connected to a single shared serial data path. These stations often communicate with a switch located between the shared data path and the stations connected to that path. Typically, the switch controls the communication of data packets on the network.
The network switch includes switching logic for receiving and forwarding frames to the appropriate destinations. One arrangement for generating a frame forwarding decision uses a direct addressing scheme, where the network switch includes a fixed address table storing switching logic for the destination addresses.
For example, a frame may be received by the network switch with header information indicating the source address and destination address of the frame. The switching logic accesses the fixed address table using the source address and destination address as lookups to find the appropriate frame forwarding information. The switch then uses this information and sends the frame to the appropriate port(s).
When all of the stations connected to the network are simultaneously operating, packet traffic on the shared serial path can be heavy with little time between packets. Accordingly, many prior art systems transmit the data frame to an external memory for storage prior to processing. However, the data frame must then be transmitted back to the switch for processing by a decision making device. This is a time-consuming process that decreases the speed with which the data is transmitted to its destination. With increased network throughput requirements, such a processing arrangement often results in an unacceptable delay in forwarding frames to their respective destinations.
There exists a need for a switching device that enables data to be stored on the switching device for processing by a decision making device.
There is also a need for a switching device that includes a memory capable of storing a portion of multiple data frames for processing by a decision making device.
These and other needs are met by the present invention, where a multiport switch uses an external memory to store data frames. When the data frames are transmitted to the external memory, a portion of the data frame is also stored in a memory on the multiport switch. The memory is configured to store multiple frame headers from the data frames received at each receive port. The frame headers are then available for processing by a decision making engine.
According to one aspect of the invention, a multiport switch is configured for controlling the communication of data frames between stations. The switch includes a plurality of receive devices corresponding to ports on the multiport switch with each receive device configured to receive data frames and transmit the data frames to an external memory interface. The switch also includes a plurality of queues corresponding to ports on the multiport switch with each of the plurality of queues configured to store a portion of a predetermined number of data frames.
Another aspect of the present invention provides a method for storing data frame information in a multiport switch that includes a plurality of queues corresponding to port on the multiport switch. The method includes receiving a data frame and transmitting the data frame to an external memory interface and transmitting a portion of the data frame to an internal decision making engine. The method also includes determining whether the queue corresponding to the port on which the data frame was received is full and generating a write address, when the queue is not full. The method further includes writing the predetermined portion of the data frame to the queue.